﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HandlingProcedures
{
    /// <summary>
    /// Медицинская процедура
    /// </summary>
    public class MedicalProcedure
    {        
        string name;
        string room;
        TimeSpan timeStart;
        TimeSpan timeEnd;
        DateTime date;

        Int32 shedule_id;
        bool inRepository;
        
        /// <summary>
        /// Медицинская комната
        /// </summary>
        public string Room
        {
            get { return room; }
            set { room = value; }
        }
        /// <summary>
        /// Название
        /// </summary>
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        /// <summary>
        /// Время начала процедуры
        /// </summary>
        public TimeSpan TimeStart
        {
            get { return timeStart; }
            set { timeStart = value; }
        }
        /// <summary>
        /// Время окончания процедуры
        /// </summary>
        public TimeSpan TimeEnd
        {
            get { return timeEnd; }
            set { timeEnd = value; }
        }
        /// <summary>
        /// Дата процедуры
        /// </summary>
        public DateTime Date
        {
            get { return date; }
            set { date = value; }
        }

        /// <summary>
        /// ID процедуры в хранилище
        /// </summary>
        public Int32 Shedule_id
        {
            get { return shedule_id; }
            set { shedule_id = value; }
        }
        /// <summary>
        /// Процедура сохранена в хранилище
        /// </summary>
        public bool InRepository
        {
            get { return inRepository; }
            set { inRepository = value; }
        }

        /// <summary>
        /// Конструктор с инициализацией всех полей
        /// </summary>
        /// <param name="shedule_id">ID процедуры в хранилище</param>
        /// <param name="name">Название</param>
        /// <param name="room">Медицинская комната</param>
        /// <param name="timeStart">Время начала процедуры</param>
        /// <param name="timeEnd">Время окончания процедуры</param>
        /// <param name="date">Дата процедуры</param>
        /// <param name="inRepository">Процедура сохранена в хранилище</param>
        public MedicalProcedure(Int32 shedule_id, string name, string room, TimeSpan timeStart, TimeSpan timeEnd, DateTime date, bool inRepository)
        {
            this.shedule_id = shedule_id;
            this.name = name;
            this.room = room;
            this.timeStart = timeStart;
            this.timeEnd = timeEnd;
            this.date = date;

            this.inRepository = inRepository;
        }

        /// <summary>
        /// Конструктор без инициализации названия процедуры и даты проведения
        /// </summary>
        /// <param name="shedule_id">ID процедуры в хранилище</param>
        /// <param name="room">Медицинская комната</param>
        /// <param name="timeStart">Время начала процедуры</param>
        /// <param name="timeEnd">Время окончания процедуры</param>
        /// <param name="inRepository">Процедура сохранена в хранилище</param>
        public MedicalProcedure(Int32 shedule_id, string room, TimeSpan timeStart, TimeSpan timeEnd, bool inRepository)
        {
            this.shedule_id = shedule_id;
            this.name = null;
            this.room = room;
            this.timeStart = timeStart;
            this.timeEnd = timeEnd;

            this.inRepository = inRepository;
        }
    }
}
